export const fileParse = (file, type = "base64") => {
  // 调用fileParse这个函数是为了选择,文件的输出格式是要解析成base64还是解析成buffer数据
  return new Promise((resolve) => {
    let fileRead = new FileReader();
    if (type === "base64") {
      //这个意思是把当前文件以base64的形式来读取出来
      fileRead.readAsDataURL(file);
    } else if (type === "buffer") {
      //这个意思是把当前文件Buffer的形式来读取出来
      fileRead.readAsArrayBuffer(file);
    } else if ("binary") {
      //这个意思是把当前文件以二进制的形式来读取出来
      fileRead.readAsBinaryString(file);
    }
    fileRead.onload = (ev) => {
      resolve(ev.target.result);
    };
  });
};
//如果我们想把文件通过断点续传或者秒传的方式传给服务器我们就会选择以base64或者buffer数据的形式读取出来
export const readFile = (file) => {
  return new Promise((resolve) => {
    let reader = new FileReader();
    reader.readAsBinaryString(file); //这个意思是把当前文件以二进制的形式来读取出来
    reader.onload = (ev) => {
      resolve(ev.target.result);
    };
  });
}; //如果我们想在本地解析文件的数据的话我们一般还会选择以二进制的形式去读取

// delay设置异步间隔延迟
export const delay = (interval = 0) => {
  return new Promise((resolve) => {
    let timer = setTimeout((_) => {
      resolve();
      clearTimeout(timer);
    }, interval);
  });
};

// 字符对照表
export const character = {
  name: {
    text: "姓名",
    type: "String",
  },
  gender: {
    text: "性别",
    type: "String",
  },
  age: {
    text: "年龄",
    type: "String",
  },
  hobby: {
    text: "爱好",
    type: "String",
  },
  phone: {
    text: "电话",
    type: "String",
  },
  singel: {
    text: "是否单身",
    type: "String",
  },
  qq: {
    text: "QQ",
    type: "String",
  },
};

// 此方法可以获取文件的后缀名
export const getFileSuffix = (fileName) =>
  /\.([0-9a-zA-Z]+)$/i.exec(fileName)[1];
